package com.ruoyi.merchant.serviceType.mapper;

import java.util.List;
import com.ruoyi.merchant.serviceType.domain.ServiceType;
import org.apache.ibatis.annotations.Mapper;

/**
 * 服务类别Mapper接口
 * 
 * @author zzr
 * @date 2025-09-14
 */
@Mapper
public interface ServiceTypeMapper 
{
    /**
     * 查询服务类别
     * 
     * @param id 服务类别主键
     * @return 服务类别
     */
    public ServiceType selectServiceTypeById(Long id);
    /**
     * 全查服务类别（不分页，过滤逻辑删除）
     * @param serviceType 筛选条件
     * @return 全量未删除列表
     */
    List<ServiceType> selectAllServiceType(ServiceType serviceType);
    /**
     * 查询服务类别列表
     * 
     * @param serviceType 服务类别
     * @return 服务类别集合
     */
    public List<ServiceType> selectServiceTypeList(ServiceType serviceType);

    /**
     * 新增服务类别
     * 
     * @param serviceType 服务类别
     * @return 结果
     */
    public int insertServiceType(ServiceType serviceType);

    /**
     * 修改服务类别
     * 
     * @param serviceType 服务类别
     * @return 结果
     */
    public int updateServiceType(ServiceType serviceType);

    /**
     * 删除服务类别
     * 
     * @param id 服务类别主键
     * @return 结果
     */
    public int deleteServiceTypeById(Long id);

    /**
     * 批量删除服务类别
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteServiceTypeByIds(Long[] ids);

    /**
     * 检查服务类别是否被引用
     * @param id 服务类别ID
     * @return 引用数量
     */
    int checkServiceTypeHasReferences(Long id);

    /**
     * 批量检查服务类别是否被引用
     * @param ids 服务类别ID数组
     * @return 引用数量
     */
    int checkServiceTypeHasReferencesByIds(Long[] ids);

    /**
     * 根据ID数组查询服务类别列表
     * @param ids 服务类别ID数组
     * @return 服务类别列表
     */
    List<ServiceType> selectServiceTypesByIds(Long[] ids);

    /**
     * 根据店铺ID查询该店铺的服务类型列表
     * @param shopId 店铺ID
     * @return 服务类型列表
     */
    List<ServiceType> selectServiceTypesByShopId(Long shopId);
}
